Sharing content between collocated mobile devices in an ad-hoc private social group

ABSTRACT

A content sharing platform for sharing content between collocated mobile devices in an ad-hoc private social group is disclosed. The content sharing platform enables users of collocated mobile devices to discover an ad-hoc private social group. A content group identifier identifying a content group is shared with users in the ad-hoc private social group. The content group identifier enables users in the content group to access a web user interface to share content with the content group. The users&#39; interactions with the content are processed in real-time for all the collocated mobile devices in the content group. The content sharing platform displays context-aware and history-aware features of the content through the web user interface. Users of the content sharing platform may share, interact and collaborate with content in real-time in their collocated mobile devices.

BACKGROUND

The proliferation of the Internet has facilitated the sharing anddistribution of content like never before. Users now flock to websites,search engines, and social networks to access and share content frommultiple devices and locations around the world. The devices may includepersonal and portable computers, phones, tablets, video game consoles,personal digital assistants or any device configured to access theInternet. The access may be wired or wireless, with wireless accessgrowing much faster. It is predicted that by 2016 there will be morewireless devices than people in the world.

Along with the rise in popularity of wireless devices, there has been agrowing demand for content sharing platforms that are targetedspecifically for the mobile user. These include, for example, Instagramfor sharing photos. Foursquare for sharing location information,Facebook Mobile and Google+ Mobile for sharing content with friends,Twitter Mobile for sharing short messages, and Google Docs Mobile forsharing documents, among others. These content sharing platforms enableusers to easily share content among their social network peers. However,they are not optimized to let users share and interact with contentinstantly and securely in real-time in ad-hoc private social groups inarbitrary devices.

BRIEF DESCRIPTION OF THE DRAWINGS

The present application may be more fully appreciated in connection withthe following detailed description taken in conjunction with theaccompanying drawings, in which like reference characters refer to likeparts throughout, and in which:

FIG. 1 illustrates a schematic diagram of an environment where thecontent sharing platform is used in accordance with various examples:

FIG. 2 illustrates a flowchart for sharing content between collocatedmobile devices in a private social group;

FIG. 3 illustrates a schematic diagram of a content sharing platformarchitecture in accordance with various examples;

FIG. 4 illustrates a cross-platform web user interface for sharingcontent with the content sharing platform of FIG. 3 according to variousexamples;

FIG. 5 illustrates a user interface window displayed when a user clickson a Settings button of the web user interface of FIG. 4;

FIG. 6 illustrates a user interface window displayed when a user clickson a local group icon of the web user interface of FIG. 4;

FIG. 7 illustrates a user interface window displayed when a user clickson a icon of the web user interface of FIG. 4;

FIG. 8 illustrates a user interface window displayed when a user clickson a Join icon of the web user interface window of FIG. 7;

FIG. 9 illustrates a user interface window displayed when a user clickson a Add button of the web user interface window of FIG. 8;

FIG. 10 illustrates a user interface window displayed when a user clickson a Document icon of the web user interface window of FIG. 9;

FIG. 11 illustrates a web interface window displayed when a user clickson a Link icon of the web user interface window of FIG. 9;

FIG. 12 illustrates a web interface window displayed when a user clickson a Group icon of the web user interface window of FIG. 9;

FIG. 13 illustrates a web interface window displayed when a user clickson a Files button of the web user interface of FIG. 4;

FIG. 14 illustrates a web interface window displayed when a user clickson a Pages button of the web user interface of FIG. 4;

FIG. 15 illustrates a web interface window displayed when a user clickson a Fullscreen button of the web user interface of FIG. 4;

FIG. 16 illustrates a web interface window displayed when a user clickson a Timeline button of the web user interface of FIG. 4;

FIG. 17 illustrates a web interface window displayed when a user clickson an Info button of the web user interface of FIG. 4; and

FIG. 18 illustrates a block diagram of an example computing system forhosting the modules of FIG. 3 according to various examples.

DETAILED DESCRIPTION

A content sharing platform for sharing content between collocated mobiledevices in an ad-hoc private social group is disclosed. The contentsharing platform enables users in a private group to share, collaborate,and interact with content seamlessly across mobile devices in real-time.The mobile devices may be physically collocated in a physical venue suchas, for example, a conference or meeting room, or located remotely ifthe users are granted access to the private group. The private group maybe formed ad-hoc by invitation or by automatically discovering theusers' location.

In various examples, the content sharing platform may be accessed from aweb page without any plug-ins and across any number of devices,operating systems, and browsers. The content sharing platform may alsosupport numerous form factors, all the way from big projector screensdown to small screen sizes in mobile phones. Users of the contentsharing platform may share, interact and collaborate with context-awareand history-aware content in real-time.

As generally described herein, context-aware content refers to contentthat is enhanced with the users' context, such as, for example, theusers' location, emotional and physical state, attention focus (e.g.,which part of the content is being shared), objects and people in theusers' environment, historical state of the content, among others.Users' annotations and meta information such as related links, notes andinstant messaging chats may all be tied to the part of the content theusers are referring to at any given time. History-aware content refersto content that is enhanced with a timeline of content sharing actions.The timeline tracks and records content sharing actions to produceminutes from the shared content that may be revisited off-line.

As described in more detail herein below, the content sharing platformhas four main modules: (1) a cross platform web interface module toenable users to share, interact and collaborate with context-aware andhistory-aware content seamlessly in real-time from their mobile devices;(2) a native bridge module to access native mobile device features fromthe web interface module; (3) a real-time messaging module to processevents and messages to/from the users; and (4) a content managementmodule to process the context-aware and history-aware content throughthe real-time event messaging module. The context-aware andhistory-aware content may be hosted by a cloud service in communicationwith the real-time event messaging module.

It is appreciated that, in the following description, numerous specificdetails are set forth to provide a thorough understanding of variousexamples. However, it is appreciated that the examples may be practicedwithout limitation to these specific details. In other instances, wellknown methods and structures may not be described in detail to avoidunnecessarily obscuring the description of the examples. Also, theexamples may be used in combination with each other.

Referring now to FIG. 1, a schematic diagram of an environment where thecontent sharing platform is used in accordance with various examples isdescribed. Users 105 a-f are collocated in a physical space 100 toshare, interact and collaborate with context-aware and history-awarecontent viewed in their mobile devices. The physical space 100 may be aconference or meeting room, or any other space where the users 105 a-fmay be located in proximity to each other. The users 105 a-f may beaccessing content in any type of mobile device, including, but notlimited to, laptops (e.g., laptop 110 a and 110 f), mobile phones (e.g.,mobile phone 110 b and 110 e), tablets (e.g., tablet 110 c and 110 d),video game consoles (not shown), and personal digital assistants (notshown), among others. The context-aware and history-aware content mayinclude documents, photos, videos, webpages, and any other type ofcontent that may be accessed in a mobile device.

The users 105 a-f share content in a private social group that may beformed ad-hoc by invitation or by automatically discovering the users'location (e.g., via GPS or Wi-Fi positioning). There are two types ofad-hoc private social groups that users may join: content groups andlocal groups. Content groups are formed ad-hoc to share specific contentwith members of the group. The content groups are identified by a groupname that is preferably secure and not easily discoverable by others(e.g., by using Globally Unique Identifiers “GUIDs” for group names). Acontent group may be created by anyone with access to the contentsharing platform as described below. The group creator can share thegroup name or URL corresponding to the group name with other users toinvite them to join the group. The only way to access content shared ina content group is by knowing its URL. If the content group name andhence its URL are not easily discoverable, then the only way to accesscontent shared in the content group is to receive its URL from the groupcreator or another group member. Anyone having access to the contentgroup has full read, write, upload, and control access to the contenttherein.

Local groups are groups associated with a given location. The locationmay be the user's physical location (e.g., physical space 100) or it maybe a custom place created and pinned to a geographic location. Thisplace can be a public venue such as a restaurant in Foursquare or it canbe a place the user created and tagged to a geolocation. By tagging alocal group to a geolocation, the group becomes discoverable throughvicinity searches. Users may automatically discover a local group basedon their device's location (e.g., from GPS). The local group may also bevirtual to allow remote users to participate in the group. These virtuallocal groups can thus be seen as a virtual team that meets regularly.

A user of a local group may also discover other users located nearby toshare content with, including a URL of a content group. The user canbroadcast a content group name to anyone in a local group or selectivelypick users to invite. Local groups can thus be used to broadcast anddistribute URLs of content groups securely. Only the users in a localgroup receiving a URL corresponding to a content group will have accessto the content shared in that group.

For example, users 105 a-f may automatically join a local groupassociated with their location. Once in the local group, users 105 a-fcan receive a URL corresponding to a content group from a member ormembers of the group by email, Short Message Service (“SMS”), QuickResponse (“QR”) code, Near Field Communication (“NFC”) tags, local groupbroadcast, or any other channel that may be used to communicate URLs. Asdescribed in more detail herein below, the URL directs the users 105 a-fto a cross platform web interface that enables them to share, interactand collaborate with context-aware and history-aware content seamlesslyin real-time from their mobile devices 110 a-f.

It is appreciated that users 105 a-f may form an ad-hoc private socialgroup instantaneously and on the fly from any of their mobile devices110 a-f. Users 105 a-f may be collocated in physical space 100 (e.g., ameeting or conference room) and all that is required for them to form anad-hoc private social group is a way to connect to the Internet fromtheir mobile devices without relying on GPS, QR code, e-mail. SMS,Bluetooth, NFC or any other hardware supported near field radiotechnology. Users 105 a-f can access the cross platform web interfacefrom a web browser client in their mobile devices 110 a-f andautomatically discover a local group. A user can then create a contentgroup and invite other users in the local group to join the contentgroup where content is shared.

It is also appreciated that any one of the users 105 a-f may sharecontent with users in the content group at any given time. There is nosingle leader in the content group that controls the sharing of thecontent. All users may share, interact and collaborate with the content.The content and content navigation actions may be shared with all users105 a-f in the content group. It is also appreciated that although users105 a-f are collocated, remote users may also interact with users 105a-f in the content group if they are granted access to the group. Forexample, remote user 115 a may access the content being shared by usersof the content group in a laptop 120 a and remote user 115 b may accessthe content in a mobile phone 120 b. The remote users 115 a-b may begranted access to the content group by receiving the URL correspondingto the group via email, SMS, or other means.

It is further appreciated that the content sharing platform enablescontent to be shared by users in a number of different environments. Forexample, the content sharing platform may be used in enterprise meetingsto share content among the meetings' participants, classrooms to sharecontent among the students and teachers in the classroom, live eventaudience engagements at stadiums, concert halls and conferences,emergency planning and crew coordination at airplanes, trains, ships,etc., and collaborative journalism, architecture, and advertising, amongother environments.

Referring now to FIG. 2, a flowchart for sharing content betweencollocated mobile devices in a private social group is described. First,users discover a private social group of collocated mobile devices(200). The private social group may be a local group discoverable byusers by associating their mobile devices to a location (e.g., eitherthe physical location of the users given by a geolocation API, or anearby location discoverable by the content sharing platform, aFoursquare venue, etc.). As described above, all that is required forthe users to discover a local group is a way to connect to the Internetfrom their mobile devices without relying on GPS, QR code, e-mail, SMS,Bluetooth, NFC or any other hardware supported near field radiotechnology. Users can access the cross platform web interface from a webbrowser client in their mobile devices and automatically discover alocal group. A user can then create a content group and invite otherusers in the local group to join the content group where content isshared. A content group identifier corresponding to a content group isshared with the users within the private social group (205). The contentgroup identifier may be encoded within a URL, QR code, NFC tag, or anyother identifier that may be shared with collocated mobile devices.

The content group identifier enables the users in the content group toaccess a cross-platform web user interface described in more detailherein below. The identifier may be shared by any member in the privatesocial (e.g., local) group. For example, the URLhttp://www.crowdee.com/snap/main.html?group=sandbox identifies a groupnamed “sandbox” for the users to join. The users may access the groupby, for example, receiving the URL from a member or members of the localgroup by email or SMS, automatically discovering the URL through a QRcode or NFC tag, receiving a broadcast to their physical locationdiscovered through a geolocation API, or through any other channel thatmay be used to communicate URLs.

It is appreciated that the URL identifying a private social group may becreated by anyone by specifying a name or unique identifier. The name orunique identifier may be specified to be hard to guess by others outsideof the group (e.g., with a random group name such as t67dg8a or aGlobally Unique Identifier “GUID”). The URL can be viewed by any userhaving access to the URL, either a user of a mobile device collocatedwith other mobile devices of users in the group or a user of a remotemobile device.

It is also appreciated that the URL is not discoverable by othersoutside of the private social group. The URL may be distributed securelyand privately among members of the group. In various examples, thecontent sharing platform may be run within an enterprise Intranetenvironment with privacy and security mechanisms in place. The contentitself may be stored in secure locations requiring authentication, or besubject to transport level and message level encryption to preventsecurity and privacy breaches.

The users enter the URL in a web browser to access the cross-platformweb user interface to share, interact and collaborate with contentviewed in their mobile devices (210). Users may share content byuploading documents (e.g., text documents, multimedia documents, images,video, etc.) from their mobile devices or the web (e.g., web links, webdocuments, bookmarklet, etc.). The documents may be uploaded in any fileformat such as, for example, pdf, ppt, doc, xls, jpg, png, gif, and soon. Users may take pictures or video with their mobile devices andupload them instantly to be shared with the private social group. Once auser uploads content with the user interface, the content is immediatelyvisible to the other members of the group. Any user in the group maythen view and interact with the content. A user in the group may alsochoose to upload other content to be shared with the group at any giventime. As described above, there is no single leader in the privatesocial group that controls the sharing of the content. All users mayshare, interact and collaborate with the content.

The users' interactions with the uploaded content are processed by thecontent sharing platform in real-time (215). The user's interactionswith the content are simultaneously displayed at all collocated mobiledevices and may include, for example, collaborative cross-devicenavigation of multi-page documents (e.g., when a user flips a page in adocument, all users in the private group see the page being flipped tothe next page), collaborative multi-document navigation, annotationsinto the document by any user in the group, instant messagingconversations between users in the group, timeline navigation (describedbelow), or any other type of content interaction that may be performedby a user in a mobile device.

The content sharing platform also displays context-aware andhistory-aware features of the content while the content is being sharedwith the group (220). The context-aware features may include notes,annotations or comments from users in the group, related links (e.g.,Wikipedia links) about topics in the content being shared, instantmessaging conversations between users in the group, and so on. Thehistory-aware features include a timeline of all uploaded and sharedcontent so users in the group can revisit the content shared off-line.These history-aware features effectively enable the content sharingplatform to create collaborative minutes of a users' content sharingsession automatically.

Referring now to FIG. 3, a schematic diagram of a content sharingplatform architecture in accordance with various examples is described.Content sharing platform 300 has various modules and services hosted onone or more servers, including, for example: (1) a User Interface Module305; (2) a Real-Time Messaging Module 310; (3) a Native Bridge Module315; (4) a Timeline and a User Management Module 320; (5) a ContentManagement Module 325; and (6) a Location Module 330. These modules aredesigned to run independently from each other and may be hosted on adedicated server machine or in a dedicated cluster of machines,depending on expected or measured loads. As understood by one skilled inthe art, splitting out the modules on multiple machines allows for theReal-Time Messaging Module 310 to incur as little external overhead aspossible since it is latency sensitive.

In various examples, the content sharing platform 300 is hosted on a webserver 335 connected to an optional proxy server 340. The proxy server340 may be a standard web server (e.g., an Apache2 server) withmod_proxy and mod_rewrite modules to ensure that consistent URLs areexposed to users of the content sharing platform 300. The users mayaccess the content sharing platform 300 through a URL request to theproxy server 340 on a number of mobile devices, such as for example,laptop 345, phone 350, tablet 355, and video game console 360, amongothers. The URL request directs the users of the content sharingplatform 300 to a user interface implemented by the User InterfaceModule 305 and described in more detail herein below. It is appreciatedthat the proxy server 340 may be deployed as part of a cloud service andoptionally be collocated with the web server 335. It is also appreciatedthat having proxy server 340 issue consistent URLs enables cookiesissued by the various content sharing platform 300 modules to be sharedamong the modules.

The web server 335 may also be a standard web server (e.g., an Apache 2server) with minimal dependencies on images and external libraries tofacilitate replication and load balance. In an example implementation,the web server 335 may use the jQuery library to make Ajax calls and theSockjs library to make socket calls to the Real-Time Messaging Module310.

The Real-Time Messaging Module 310 is responsible for handling allevents and messages through the content sharing platform 300 andprovides a front-end for content upload and management. The Real-TimeMessaging Module 310 may be implemented as a Node.Js server with twotypes of Application Programming Interfaces (“APIs”): a standardHTTP/Post/Get/Rest API and a WebSocket API through the Sockjs library.The two APIs enable various web clients (e.g., the mobile devices345-360) to push events and messages through the Real-Time MessagingModule 310 without requiring the full WebSocket stack. The WebSocket APIis used to receive notifications and messages in real-time. It isappreciated that polling with the Rest API may also be used for thispurpose but with a loss in efficiency.

In various examples, the Real-Time Messaging Module 310 maintains stateinformation about which clients are in which private social groups. TheReal-Time Messaging Module 310 may be difficult to replicate acrossmachines and is very latency sensitive, so it is recommended that it beimplemented on a dedicated machine. Since the Sockjs library supports adistributed backend, the Real-Time Messaging Module 310 may be scaledout if needed.

The Native Bridge Module 315 provides a Native Bridge Application 365implemented with a Javascript API deployed on mobile devices 345-360 toaccess native device features, such as, for example, the native cameraand photo gallery applications on the mobile devices 345-360. Calls fromthe User Interface Module 305 to native code on a mobile device may beredirected through a URL redirect module (e.g., jsbridge://) to generatea platform agnostic custom URL. The redirected call may be handled by aruntime module that sends (e.g., by HTTP Post) the local results to abridge server (not shown). The HTTP Post submits data to be processed tothe bridge server. The URL redirect module may include a library togenerate the custom URL. For example, the library may be a JavaScriptlibrary. The runtime module may be installed on the mobile device, andcode for the runtime module may be unique to a device platform. Forexample, code for the runtime module may be unique for each Android,iOS, WebOS etc., based platform. The Native Bridge Module 315 alsoallows for bookmarklets to be added easily to shared content on Androidbased platforms. It further allows for a URL corresponding to a privatesocial group to be written to an NFC tag.

The Timeline and User Management Module 320 may be implemented as aDjango service embedded inside the web server 335 using a Web ServerGateway Interface (“WSGI”). The Timeline and User Management Module 320is responsible for maintaining a consistent view of timelines for thecontent sharing platform 300 groups, storing notes and providing userauthentication (e.g., via a social network login). It is appreciatedthat the Timeline and User Management Module 320 may also be deployedseparately from the web server 335 if the server is replicated. TheTimeline and User Management Module 320 may support jsonp cross domaincalls, but if the proxy server 340 is present, regular Ajax calls mayalso be used.

The Content Management Module 325 is responsible for allowing upload andprocessing of content into the content sharing platform 300. The ContentManagement Module 325 also sends out notifications through the Real-TimeMessaging Module 310 when new content is available. The ContentManagement Module 325 may be implemented as a set of Linux scripts usingImageMagick, OpenOffice, Poppler, and Ghostscript. It is highlyparallelizable and distributable and in some cases it may be quite CPUintensive. The Content Management Module 325 includes a Content UploadModule 370, a Content Conversion Module 375, a Content Processing Module380, and a Topic Extraction Module 385 for processing and managingcontent shared through the content sharing platform 300.

The Content Upload Module 370 provides a HTTP Post API used by the UserInterface Module 305 when uploading files and by the Native BridgeModule 315 clients when posting photos or accessing other native devicefeatures. The Content Upload Module 370 is connected with the Real-TimeMessaging Module 310 to push out notifications and messages whenever newcontent is available in a group. The module 315 may be implemented inNode.JS and python scripts.

The Content Conversion Module 375 is responsible for taking a documentof any supported file type (e.g., 150+ file types such as RTF, JPG, PPT,etc.) as input and converting the document to a PDF. The ContentConversion Module 375 may internally use the OpenOffice v3 import andexport libraries via the unoconv tool.

The Content Processing Module 380 takes a PDF as input directly from theContent Upload Module 370 or from the Content Conversion Module 375after conversion from another file format. The Content Processing Module380 first paginates the document and converts each page to a jpg imageusing, for example, a tool such as ImageMagick and Ghostscript. Theimage is thumbnailed in two additional resolutions for quicker loadingin mobile devices and for thumbnail galleries. Text is then extractedfrom the PDF, associated annotations (such as speaker notes in powerpoint files) and the actual document text. This text is then passed tothe Topic Extraction Module 385 to extract Wikipedia links. The ContentProcessing Module 380 is also responsible for flipping photos taken indifferent orientations on mobile devices using exif metadata embedded inthe photos by the Native Bridge Module 315.

The Topic Extraction Module 385 retrieves the most relevant Wikipedialinks for an arbitrary chunk of text. Each link is also associated witha relevance or similarity score. If the similarity is below a thresholdno links are returned. In one example, at most 10 links can be returned.A topic model for all of the English version of Wikipedia can be loadedinto memory and be available using a Pyro4 based Key Value Store server(not shown) to extract topics in real-time. The Topic Extraction Module385 may use a Latent Semantic Indexing (“LSI”) model based on the gensimlibrary to extract relevant topics.

Attention is now directed to FIGS. 4-17, which show the cross-platformweb user interface according to various examples. User interface 400 isdisplayed in a web browser client in a mobile device (e.g., mobiledevices 110 a-f and 120 a-b) upon a user entering a URL 405corresponding to a private social group in the web browser client. TheURL 405 directs the user to content being shared in the private socialgroup, such as content 410 displayed in the user interface main window415.

The user interface 400 is a cross-platform user interface that may berun on any web browser and platform, including, but not limited to, webbrowsers such as Internet Explorer, Mozilla Firefox, Google Chrome, andSafari, and platforms such as iOS and Android, among others. Inaddition, the same user interface 400 is run on different types ofmobile devices, e.g., desktops, laptops, tablets, mobile phones, and soon. As appreciated by one skilled in the art, there may be some minorcustomizations done at the web browser client with regards to imageresolution, compression, and other features tied to the mobile devices'display.

The first time a user visits the URL 405, the user is asked to sharehis/her location. The user is not required to do so, but sharing his/herlocation enables the user to more easily share content with other users.Once the user has accepted to share his/her location, a local group orplace icon 420 may be displayed in the top right corner of the userinterface 400. The local group or place icon 420 may identify the user'sphysical location (e.g., physical space 100) or it may be a custom placecreated and pinned to a geographic location. The local group could alsobe a pre-existing place such as a venue in Foursquare or, as describedabove with reference to FIG. 1, an arbitrary identifier for a localgroup shared among a set of people to broadcast URLs corresponding tocontent groups (e.g., a local group of meeting attendees sharing themeeting presentation slides).

It is appreciated that the local group identifies who is located in thesame place and enables local content sharing. This place can be a publicvenue such as a restaurant in Foursquare or it can be a place the usercreated and tagged to a geolocation. By tagging a local group to ageolocation, the group becomes discoverable through vicinity searches.The local group may also be virtual to allow remote users to participatein the group. These virtual local groups can thus be seen as a virtualteam that meets regularly. The user can broadcast the local group nameto anyone in a location or selectively pick users to invite.

The user interface 400 displays a username 425 to the left of the localgroup icon 420. The username is set to “anonymous” by default. The usercan click on the displayed username to set it as desired. Alternatively,the user can click on Settings icon 430 in the top right of the userinterface 400 screen. Doing so opens up pop-up window 500 shown in FIG.5 and from which the user can login using his/her social network (e.g.,Facebook) credentials at 505.

The user can get more information about the group by clicking on thelocal group icon 420. Doing so opens up a pop-up window 600 shown inFIG. 6. Pop-up window 600 displays the user's location at 605, allowsthe user to refresh his/her location at 610, see nearby locations at615, view current group numbers at 620, invite other members at 625, seea QR code corresponding to the group name at 630, write a NFC tag at635, create a new group location at 640, and generate a new locationname at 645. The user can also broadcast the group's name to othercollocated users.

If desired, the user can at any time join or create another group withwhich to share content. The user can do so by clicking on the icon“Snap” 435 (FIG. 4) below the URL 405. Clicking on icon 435 opens up apop-up window 700 shown in FIG. 7 that allows the user to join anothergroup by typing the group name in window 705 and clicking on the “Join”icon 710, or generate a new group name by clicking on the “Generategroup name” icon 710. The new group name appears in window 705, at whichpoint the user can click on the Join icon 710 to join the newly createdgroup. When the user joins a new group, a new window 800 shown in FIG. 8opens up to allow the user to add content to be shared with the group.The new window 800 shows the new group name 805 and the URL 810corresponding to the group. Other users can join this newly createdgroup as described above with reference to FIG. 2.

Window 800 is initially blank until a user in the group decides to addcontent by clicking on the Add button 815. Doing so opens up a pop-upwindow 900 shown in FIG. 9 to allow the user to add content by clickingon “Document” icon 905, “Link” icon 910, or “Group” icon 915. Clickingon Document icon 905 opens up a pop-up window 1000 shown in FIG. 10 toallow the user to upload files directly from the user's mobile device.The user can also take a picture with the camera in the user's mobiledevice and automatically display the picture in window 800 with theNative Bridge Application 365 (FIG. 3) in the user's mobile device, oradd content with bookmarklets at 510-515 (FIG. 5). Clicking on link icon910 opens up a pop-up window 1100 shown in FIG. 11 to allow the user toenter the URL of a web page (e.g., http://hp.com that is displayed inwindow 1105. And clicking on Group icon 915 opens up a window 1200 shownin FIG. 12 to allow the user to enter a new group and view the contentin that group. Users may also add web pages with bookmarklets byclicking on any arbitrary currently viewed web page from the users'browser bookmarks bar.

Referring back to FIG. 4, the user has a number of options to navigateand interact with the content being displayed in the user interface 400.The options are shown in a top menu 440 displayed at the top of the userinterface 400. For example, the user can select the Files button 445 intop menu 440 to view all content uploaded into the local group 420 in aFiles window 1300 shown in FIG. 13. The content may include textdocuments, multimedia documents, images, video, etc., in any file formatsuch as, for example, pdf, ppt, doc, xls, jpg, png, gif, and so on. Theuser can select one of the content files displayed in the Files window1300 to view the content in the main window 1305. For example, the usercan select content file 1310 to see the first page 1315 of the file 1310displayed in the main window 1305. The user can also select a link 1320to the original image 1315 displayed in the main window 1305 to view theimage 1315 in a separate web browser tab or window, or when applicable,the user can select a link “PDF” 1325 to view the page 1315 as a PDFdocument.

In various examples, the content displayed in the Files window 1300 mayalso include links to other content groups, such as link 1330. A usermay click on the link 1330 to open up a new page directing the user toanother content group, e.g., the group named “Mygroup” with the URLhttp://www.crowdee.com/snap/main.html?group=mygroup. One skilled in theart appreciates that this feature enables users to create arbitraryhierarchical indexes of related content groups within Files window 1300.

It is appreciated that each content file in the Files window 1300 mayhave multiple pages. The user can click on the Pages button 450 in topmenu 440 to view thumbnails of all pages in the document in a Pageswindow 1400 shown in FIG. 14. Selecting a page thumbnail 1405 displaysthe corresponding page 1410 in the main window 1415 as shown in FIG. 14.

It is also appreciated that the content view displayed in main window415 may appear as a slideshow for easy navigation by the users. Tonavigate between pages, the user can use the “<” and “>” icons 455 inthe top menu 440 of the user interface 400. The user can also optionallynavigate the content being displayed in main window 415 with the typicalbehavior of a Powerpoint presentation by using the arrow, space, enter,PageUp, PageDown, Home, and End keys in a keyboard associated with theuser's mobile device. Certain tablets, phones and other mobile devicesmay allow the user to swipe the devices' screen to navigate the content.

The user can also enter and exit a fullscreen mode by pressing the“FULLSCREEN” button 460. Doing so opens up window 1500 shown in FIG. 15in the web browser client. In fullscreen mode, the user can also clickon an optional “HI-RES” button 1505 to view a higher resolution image(e.g., when presenting the content on a projector). The HI-RES button1505 slowly fades away in fullscreen mode, so the user needs to click ortouch the main window 1515 once to see it again. Clicking on the “BACK”button 1510 takes the user out of fullscreen mode.

As described herein above, the user has access to history-aware andcontext-aware features of the content displayed in the main window 415.The history-aware features include a timeline of all uploaded and sharedcontent so users in the group 420 can revisit the content shared at anytime. The user can select the Timeline button 465 in the top menu 440 ofuser interface 400 to see the history of content shared in the group ina Timeline window 1600 shown in FIG. 16. History is recorded when theusers are in a “present” mode. To enter the present mode, a user canselect the Present button 470 in the top menu 440 of the user interface400. Doing so highlights the Present button 470 to notify the user thathe/she is in the present mode, records the users' content sharingactions for the group 420 and broadcasts them live to all members in thegroup. To leave the present mode, the user can simply click on thePresent button 470 again.

In contrast to the present mode, users have the option to view contentdisplayed in the main window 415 by being in an offline mode. The usercan enter the offline mode by clicking on the Offline button 475 in thetop menu 440 of user interface 400. Doing so highlights the Offlinebutton 470 to notify the user that he/she is in the offline mode. Theoffline mode allows the users to view the content in the main window 415without seeing notifications from other members in the group and browsethe content undisturbed. The user can leave the offline mode by clickingon the Offline button 470 again. It is appreciated that being in theoffline mode still allows for content history to be recorded.

The context-aware features of the content displayed in the main window415 may include notes, annotations or comments from users in the group,related links (e.g., Wikipedia links) about topics in the content beingshared, instant messaging conversations between users in the group, orany other information and metadata about the content. The user can seethose features by clicking on the Info button 480 in the top menu 440 ofthe user interface 400. Doing so allows the user to see additionalinformation and metadata about the content displayed in main window 415,such as, for example, context-aware features 1700 shown in FIG. 17 andincluding notes 1705, links 1710, and comments 1715 displayed below thecontent in main window 1720.

It is appreciated that the user interface 400 described above withreference to FIGS. 4-17 is designed to securely share documents inprivate groups. Thus all analytics and document processing is containedwithin the groups. Groups are not discoverable but there are variousmechanisms to share groups. It is up to the group members how securelythey want to share their group. Anyone with access to the group URL hasfull access to the content, with the exception of web pages that mightrequire some authentication. Hence it is important to not distributethis URL too widely, i.e., on a public crawlable web page if it desiredthat the URL remains private. Emailing and SMS-ing the link is safe, butin some situations users may not even want to do that. In such cases,users can encode the URL as a QR code or an NFC tag that only people inthe users' physical vicinity have access to.

Users are encouraged to select group names that make their identity hardto guess, e.g., GUID-based group ids. All links are redirected toexternal servers so the URL containing the secret group name does notleak out in the HTTP referrer header. This applies for web pagethumbnails, links clickable on inside the web pages, and links poppingout of embedded web pages in a separate window.

It is also appreciated that for enterprise use cases, these securityguarantees may not be strong enough. In these cases, the content sharingplatform described herein can be deployed in an enterprise intranet.

As described above, the modules used in the content sharing platform 300in FIG. 3 may be hosted in a web server. Referring now to FIG. 18, ablock diagram of an example computing system for hosting the modules ofFIG. 3 according to various examples of the present disclosure isdescribed. The computing system 1800 (e.g., a desktop computer, alaptop, a multi-core processing system, a tablet, a smart phone, amobile device, a gaming system, etc.) can include a processor 1805 andmemory resources, such as, for example, the volatile memory 1810 and/orthe non-volatile memory 1815, for executing instructions stored in atangible non-transitory medium (e.g., volatile memory 1810, non-volatilememory 1815, and/or computer readable medium 1820) and/or an applicationspecific integrated circuit (“ASIC”) including logic configured toperform various examples of the present disclosure.

A machine (e.g., a computing device) can include and/or receive atangible non-transitory computer-readable medium 1820 storing a set ofcomputer-readable instructions (e.g., software) via an input device1825. As used herein, the processor 1805 can include one or a pluralityof processors such as in a parallel processing system. The memory caninclude memory addressable by the processor 1805 for execution ofcomputer readable instructions. The non-transitory computer readablemedium 1820 can include volatile and/or non-volatile memory such as arandom access memory (“RAM”), magnetic memory such as a hard disk,floppy disk, and/or tape memory, a solid state drive (“SSD”), flashmemory, phase change memory, and so on. In some examples, thenon-volatile memory 1815 can be a local or remote database including aplurality of physical non-volatile memory devices.

The processor 1805 can control the overall operation of the computingsystem 1800. The processor 1805 can be connected to a memory controller1830, which can read and/or write data from and/or to volatile memory1810 (e.g., RAM). The memory controller 1830 can include an ASIC and/ora processor with its own memory resources (e.g., volatile and/ornon-volatile memory). The volatile memory 1810 can include one or aplurality of memory modules (e.g., chips). The processor 1805 can beconnected to a bus 1835 to provide communication between the processor1805, the network connection 1840, and other portions of the computingsystem 1800. The non-volatile memory 1815 can provide persistent datastorage for the computing system 1800. Further, the graphics controller1845 can connect to a display 1850.

Each computing system 1800 can execute computer-readable instructionsthat are stored on a non-transitory computer-readable medium 1820. Thenon-transitory computer-readable medium 1820 can be integral, orcommunicatively coupled, to computing device 1800, in either a wired orwireless manner. For example, the non-transitory computer-readablemedium 1820 can be an internal memory, a portable memory, a portabledisk, or a memory located internal to another computing resource (e.g.,enabling the computer-readable instructions to be downloaded over theInternet).

The non-transitory computer-readable medium 1820 can havecomputer-readable instructions 1855 stored thereon that are executed bythe processor 1805 to implement the modules of content sharing platform300 (e.g., Time Messaging Module 310, Native Bridge Module 315, Timelineand User Management Module 320, Content Management module 325, LocationModule 330, etc.) according to the present disclosure. Thenon-transitory computer-readable medium 1820, as used herein, caninclude volatile and/or non-volatile memory. Volatile memory can includememory that depends upon power to store information, such as varioustypes of dynamic random access memory (“DRAM”), among others.Non-volatile memory can include memory that does not depend upon powerto store information. Examples of non-volatile memory can include solidstate media such as flash memory, EEPROM, and phase change random accessmemory (“PCRAM”), among others. The non-transitory computer-readablemedium 1820 can include optical discs, digital video discs (“DVD”),Blu-Ray Discs, compact discs (“CD”), laser discs, and magnetic mediasuch as tape drives, floppy discs, and hard drives, solid state mediasuch as flash memory, EEPROM, PCRAM, as well as any other type ofcomputer-readable media.

Advantageously, the methods and modules of the content sharing platform300 presented herein enable users to share and discuss a stream ofcontent in real-time within private ad-hoc groups in a given location.The content sharing platform 300 is compatible with many types of mobiledevices (e.g., laptops, mobile phones, tablets, etc.), operating systems(e.g., iOS. Android, etc.), web browsers (e.g., Internet Explorer,Mozilla Firefox, Safari, Google Chrome, etc.), and screen sizes (e.g.,small to large). Users may instantly access the content sharing platform300 without requiring any prior configuration. The content sharingplatform 300 provides an interactive and collaborative content-sharingexperience that is context-aware and history-aware, all with instantaccess and set-up.

It is appreciated that the previous description of the disclosedexamples is provided to enable any person skilled in the art to make oruse the present disclosure. Various modifications to these examples willbe readily apparent to those skilled in the art, and the genericprinciples defined herein may be applied to other examples withoutdeparting from the spirit or scope of the disclosure. Thus, the presentdisclosure is not intended to be limited to the examples shown hereinbut is to be accorded the widest scope consistent with the principlesand novel features disclosed herein. For example, it is appreciated thatthe present disclosure is not limited to a particular computing systemconfiguration, such as computing system 1800.

What is claimed is:
 1. A system for sharing content between collocatedmobile devices in an ad-hoc private social group, comprising: aprocessor; and a set of modules hosted in a server and implementinginstructions executable by the processor, the set of modules comprising:a web user interface module to enable users of collocated mobile devicesto share, interact, and collaborate with content in a content group suchthat all users in the content group share, interact and collaborate withreal-time user context-enhanced and timeline-enhanced content without aleader that controls content sharing in the group, and to display users'interactions with the content in real-time of all users in the contentgroup in a manner that each interaction of a user with the content isdisplayed to the other users in the content group; a native bridgemodule to access native mobile device features from the web interfacemodule by redirecting calls to the native mobile device features througha native redirect module that generates a platform agnostic customuniform resource locator to access the native mobile device features,the redirected calls being handled by a runtime module sending dataregarding the redirected calls to bridge server to process the dataregarding the redirected calls; a real-time event messaging module toprocess events generated through the web interface module; and a contentmanagement module to process the content through the real-time eventmessaging module.
 2. The system of claim 1, wherein the set of modulescomprises a timeline and user management module to maintain a timelineof content sharing actions for the collocated mobile devices.
 3. Thesystem of claim 1, wherein the native bridge module comprises a nativebridge application in the collocated mobile devices.
 4. The system ofclaim 1, wherein the content management module comprises a contentupload module to upload content to the web user interface module, acontent conversion module to convert content from a first format into asecond format, and a content processing module to extract text for atopic extraction module to determine topics related to the extractedtext.